<?php

use think\migration\Migrator;
use think\migration\db\Column;

class AirQualityWeatherForecastDay extends Migrator
{
    public function up()
    {
        $table = $this->table('air_quality_weather_forecast_day');
        $table
            //step1:城市ID
            ->addColumn('region_id', 'integer', ['comment'=>'区域ID',])

            //step2:时间
            ->addColumn('predict_time', 'datetime', ['comment' => '预报时间'])
            ->addColumn('publish_time', 'datetime', ['comment' => '发布时间'])
            ->addColumn('create_time', 'datetime', [ 'comment' => '入库时间'])

            //step3:天气六参数（作为天气汇总的参数，与按小时的不一样）
            //参数1：气温
            ->addColumn('maximum_temperature', 'integer', ['limit' => 4, 'comment' => '最高气温'])
            ->addColumn('minimum_temperature', 'integer', ['limit' => 4, 'comment' => '最低气温'])
            ->addColumn('average_temperature', 'integer', ['limit' => 4, 'comment' => '平均气温'])
            //参数2：风力
            ->addColumn('highest_wind', 'integer', ['limit' => 4, 'comment' => '最高风力'])
            ->addColumn('minimum_wind', 'integer', ['limit' => 4, 'comment' => '最低风力'])
            ->addColumn('average_wind', 'integer', ['limit' => 4, 'comment' => '平均风力'])
            //参数3：风向（注：这里标识，风向最多的次数）
            ->addColumn('wind_direction', 'string', ['limit' => 50, 'comment' => '风向'])
            //参数4：湿度
            ->addColumn('maximum_humidity', 'integer', ['limit' => 10, 'comment' => '最高湿度'])
            ->addColumn('minimum_humidity', 'integer', ['limit' => 10, 'comment' => '最低湿度'])
            ->addColumn('average_humidity', 'integer', ['limit' => 10, 'comment' => '平均湿度'])
            //参数5-1：最高总云量
            ->addColumn('maximum_cloud_cover', 'integer', ['limit' => 10, 'comment' => '最高总云量'])
            ->addColumn('maximum_sky_condition', 'string', ['limit' => 50, 'comment' => '最高总云量对应的天空情况'])
            ->addColumn('maximum_sky_condition_icon', 'string', ['limit' => 50, 'comment' => '最高总云量对应的天空情况对应的图标'])
            //参数5-2：最低总云量
            ->addColumn('minimum_cloud_cover', 'integer', ['limit' => 10, 'comment' => '最低总云量'])
            ->addColumn('minimum_sky_condition', 'string', ['limit' => 50, 'comment' => '最低总云量对应的天空情况'])
            ->addColumn('minimum_sky_condition_icon', 'string', ['limit' => 50, 'comment' => '最低总云量对应的天空情况对应的图标'])
            //参数5-3：平均总云量
            ->addColumn('average_cloud_cover', 'integer', ['limit' => 10, 'comment' => '平均总云量'])
            ->addColumn('average_sky_condition', 'string', ['limit' => 50, 'comment' => '平均总云量对应的天空情况'])
            ->addColumn('average_sky_condition_icon', 'string', ['limit' => 50, 'comment' => '平均总云量对应的天空情况对应的图标'])
            //参数6：气压
            ->addColumn('maximum_pressure', 'integer', ['limit' => 10, 'comment' => '最大气压'])
            ->addColumn('minimum_pressure', 'integer', ['limit' => 10, 'comment' => '最小气压'])
            ->addColumn('average_pressure', 'integer', ['limit' => 10, 'comment' => '平均气压'])

            //注释
            ->setComment('空气质量 - 天气 - 预报 - 日数据（天）')

            //引擎
            ->setEngine('InnoDB')
            ->save();
    }

    public function down()
    {
        $this->table('air_quality_weather_forecast_day')->drop();
    }
}
